package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 凭证明细对象 t_voucher_detail
 * 
 * @author ruoyi
 * @date 2025-02-26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TVoucherDetail
{
    private static final long serialVersionUID = 1L;

    /** 凭证明细id */
    private Long voucherDetailId;

    /** 凭证id，关联凭证表的id */
    private Long voucherId;

    /** 科目id，关联科目表的id */
    private Long accountId;

    /** 凭证字id，关联凭证字表的id */
    private Long voucherWordId;
    /** 摘要id，关联摘要表的id */
    @Excel(name = "摘要id，关联摘要表的id")
    private Long abstractId;

    /** 贷方金额 */
    @Excel(name = "借方金额")
    private BigDecimal debitAmount;

    /** 贷方金额 */
    @Excel(name = "贷方金额")
    private BigDecimal creditAmount;

    /** 创建人 */
    private String creator;

    /** 创建时间 */
    private Date creationTime;

    /** 修改人 */
    private String modifier;

    /** 修改时间 */
    private Date modificationTime;
    @TableField(exist = false)
    private Long id;

    /** 科目编码 */
    @TableField(exist = false)
    private String number;

    /** 科目名称 */
    @TableField(exist = false)
    private String name;

    /** 上级科目 */
    @TableField(exist = false)
    private Long fatherId;

    /** 科目类别 */
    @TableField(exist = false)
    private Long assetsTypeId;

    /** 状态 */
    @TableField(exist = false)
    private Long typeId;

    /** 余额方向 */
    @TableField(exist = false)
    private Long yeFx;

    public void setVoucherDetailId(Long voucherDetailId) 
    {
        this.voucherDetailId = voucherDetailId;
    }

    public Long getVoucherDetailId() 
    {
        return voucherDetailId;
    }
    public void setVoucherId(Long voucherId) 
    {
        this.voucherId = voucherId;
    }

    public Long getVoucherId() 
    {
        return voucherId;
    }
    public void setAccountId(Long accountId) 
    {
        this.accountId = accountId;
    }

    public Long getAccountId() 
    {
        return accountId;
    }
    public void setAbstractId(Long abstractId) 
    {
        this.abstractId = abstractId;
    }

    public Long getAbstractId() 
    {
        return abstractId;
    }
    public void setDebitAmount(BigDecimal debitAmount) 
    {
        this.debitAmount = debitAmount;
    }

    public BigDecimal getDebitAmount() 
    {
        return debitAmount;
    }
    public void setCreditAmount(BigDecimal creditAmount) 
    {
        this.creditAmount = creditAmount;
    }

    public BigDecimal getCreditAmount() 
    {
        return creditAmount;
    }
    public void setCreator(String creator) 
    {
        this.creator = creator;
    }

    public String getCreator() 
    {
        return creator;
    }
    public void setCreationTime(Date creationTime) 
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() 
    {
        return creationTime;
    }
    public void setModifier(String modifier) 
    {
        this.modifier = modifier;
    }

    public String getModifier() 
    {
        return modifier;
    }
    public void setModificationTime(Date modificationTime) 
    {
        this.modificationTime = modificationTime;
    }

    public Date getModificationTime() 
    {
        return modificationTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("voucherDetailId", getVoucherDetailId())
            .append("voucherId", getVoucherId())
            .append("accountId", getAccountId())
            .append("abstractId", getAbstractId())
            .append("debitAmount", getDebitAmount())
            .append("creditAmount", getCreditAmount())
            .append("creator", getCreator())
            .append("creationTime", getCreationTime())
            .append("modifier", getModifier())
            .append("modificationTime", getModificationTime())
            .toString();
    }
}
